#include "MyTimer.h"

#define PWM_FREQUENCY 100000 // 100 kHz
#define PRESCALER 12 // 设置预分频系数为12
#define TIMER1_RELOAD_VALUE (65536 - (MAIN_Fosc / PRESCALER / PWM_FREQUENCY))


/*定时器初始化*/
void Timer_Init(void)
{
	AUXR &= 0x7F;			//定时器时钟12T模式
	TMOD &= 0xF0;			//设置定时器模式
	TL0 = 0;				//设置定时初始值
	TH0 = 0;				//设置定时初始值
	TF0 = 0;				//清除TF0标志
	TR0 = 0;				//定时器0开始计时
}

/*定时器0清零函数*/
void Timer0_SetCounter(void)
{
	TH0=0/256;
	TL0=0%256;
}

/*获取计时器的值*/
unsigned int Timer0_GetCounter(void)
{
	return (TH0<<8)|TL0;
}

void Timer1_Init(void)
{
    TMOD &= 0x0F; 	  // 设置定时器1为16位自动重装载12T模式
    TMOD |= (1 << 2); // 设置定时器1为12T模式
    AUXR |= (1 << 4); // 定时器1时钟选择为Fosc / 12

    // 计算定时器1的重载值
    TH1 = TIMER1_RELOAD_VALUE / 256; // 设置定时器1初值
    TL1 = TIMER1_RELOAD_VALUE % 256;

    ET1 = 1; // 允许定时器1中断
    EA = 1; // 允许全局中断
    TR1 = 1; // 启动定时器1
}



